import WorkflowDivi from '@/components/page/WorkflowDivi';
import { format } from '@/utils/datetime';
// import { renderNumber } from '@/utils/common';
import { useModel } from 'umi';
export default () => {
  const { props } = useModel('sysInfo', (ret) => ({
    props: ret.getCurExtendProps(),
  }));
  const { user } = useModel('@@initialState', (ret) => {
    return {
      user: ret.initialState?.user,
    };
  });
  const taskColumns: API.Column[] = [
    {
      title: '申请人',
      dataIndex: 'SQR',
      key: 'SQR',
      width: 120,
      sorter: true,
      dispaly: true,
      filter: true,
      export: true,
      dataType: 'string',
    },
    {
      title: '申请时间',
      key: 'SQDT',
      render: (data) => format(data, 'yyyy-MM-dd'),
      width: 120,
      sorter: true,
      dispaly: true,
      filter: true,
      dataType: 'date',
    },
    {
      title: '客户名称',
      dataIndex: 'CUNM',
      key: 'CUNM',
      width: 120,
      sorter: true,
      dispaly: true,
      filter: true,
      dataType: 'string',
    },
    {
      title: '证件号码',
      dataIndex: 'IDNO',
      key: 'IDNO',
      width: 180,
      sorter: true,
      dispaly: true,
      filter: true,
      export: true,
      dataType: 'string',
    },
    // {
    //   title: '开户网点',
    //   dataIndex: 'UTNM',
    //   key: 'UTNM',
    //   width: 120,
    //   sorter: true,
    //   dispaly: true,
    //   filter: true,
    //   export: true,
    //   dataType: 'string',
    // },
    // {
    //   title: '科目',
    //   dataIndex: 'ITNM',
    //   key: 'ITNM',
    //   width: 120,
    //   sorter: true,
    //   dispaly: true,
    //   filter: true,
    //   dataType: 'string',
    // },
    // {
    //   title: '账号',
    //   dataIndex: 'ACNO',
    //   key: 'ACNO',
    //   width: 220,
    //   sorter: true,
    //   dispaly: true,
    //   filter: true,
    //   dataType: 'string',
    // },
    // {
    //   title: '子账号',
    //   dataIndex: 'BANO',
    //   key: 'BANO',
    //   width: 120,
    //   sorter: true,
    //   dispaly: true,
    //   filter: true,
    //   export: true,
    //   dataType: 'string',
    // },
    {
      title: props.isUpdate ? '变更日期' : '开户日期',
      key: props.isUpdate ? 'DSDT' : 'OPDT',
      dataIndex: props.isUpdate ? 'DSDT' : 'OPDT',
      render: (data) => format(data, 'yyyy-MM-dd'),
      width: 110,
      sorter: true,
      dispaly: true,
      export: true,
      dataType: 'date',
    },
  ];
  const importControls: API.Control[] = [
    {
      name: 'CUNM',
      type: 'text',
      label: '客户名称',
      dataType: 'string',
      grid: 12 / 24,
      rules: [{ required: true, message: '客户名称不能为空' }],
    },
    {
      name: 'IDNO',
      type: 'text',
      label: '证件号码',
      dataType: 'string',
      grid: 12 / 24,
      rules: [{ required: true, message: '证件号码不能为空' }],
    },
    // {
    //   name: 'ACNO',
    //   type: 'text',
    //   label: '账号',
    //   dataType: 'string',
    //   grid: 12 / 24,
    //   rules: [{ required: true, message: '账号不能为空' }],
    // },
    // {
    //   name: 'BANO',
    //   type: 'text',
    //   label: '子账号',
    //   dataType: 'string',
    //   grid: 12 / 24,
    //   rules: [{ required: true, message: '子账号不能为空' }],
    // },
  ];

  // if (props.isUpdate) {
  //   importControls.push({
  //     name: 'DSDT',
  //     type: 'date',
  //     label: '变更日期',
  //     dataType: 'date',
  //     grid: 12 / 24,
  //     rules: [{ required: true, message: '变更日期不能为空' }],
  //   });
  // }
  const renderDivi = (divis: Record<string, any>[]) => {
    if (!divis || divis.length == 0) {
      return '';
    }
    let diviStr = '';
    divis.map((d) => {
      diviStr = diviStr + d.EMNM + '(' + d.EMNO + '):' + d.DSVL + ' ';
    });
    return diviStr;
  };
  const searchColumns: API.Column[] = [
    {
      title: '账号',
      dataIndex: 'ACNO',
      key: 'ACNO',
      width: 220,
      sorter: true,
      dispaly: true,
      filter: true,
      fixed: 'left',
      ellipsis: true,
      dataType: 'string',
    },
    {
      title: '子账号',
      dataIndex: 'BANO',
      key: 'BANO',
      width: 110,
      sorter: true,
      dispaly: true,
      filter: true,
      fixed: 'left',
      dataType: 'string',
    },
    {
      title: '客户名称',
      dataIndex: 'CUNM',
      key: 'CUNM',
      width: 140,
      sorter: true,
      dispaly: true,
      filter: true,
      ellipsis: true,
      dataType: 'string',
    },
    {
      title: '证件号码',
      dataIndex: 'IDNO',
      key: 'IDNO',
      width: 180,
      sorter: true,
      dispaly: true,
      filter: true,
      export: true,
      dataType: 'string',
    },
    {
      title: '开户网点',
      dataIndex: 'UTNM',
      key: 'UTNM',
      width: 130,
      sorter: true,
      dispaly: true,
      filter: true,
      dataType: 'string',
    },
    {
      title: '卡号',
      dataIndex: 'CDNO',
      key: 'CDNO',
      width: 160,
      sorter: true,
      dispaly: true,
      filter: true,
      dataType: 'number',
    },
    // {
    //   title: '科目',
    //   dataIndex: 'ITNM',
    //   key: 'ITNM',
    //   width: 130,
    //   sorter: true,
    //   dispaly: true,
    //   filter: true,
    //   ellipsis: true,
    //   dataType: 'string',
    // },
    {
      title: '开户日期',
      key: 'OPDT',
      dataIndex: 'OPDT',
      render: (data) => format(data, 'yyyy-MM-dd'),
      width: 140,
      sorter: true,
      dispaly: true,
      filter: true,
      dataType: 'date',
    },
    // {
    //   title: '币种',
    //   dataIndex: 'CYNM',
    //   key: 'CYNM',
    //   width: 120,
    //   sorter: true,
    //   dispaly: true,
    //   filter: true,
    //   dataType: 'string',
    // },
    // {
    //   title: '余额',
    //   dataIndex: 'ACBL',
    //   key: 'ACBL',
    //   render: (acbl) => renderNumber('.0f', acbl),
    //   width: 130,
    //   sorter: true,
    //   dispaly: true,
    //   filter: true,
    //   dataType: 'number',
    // },
    // {
    //   title: '销户日期',
    //   dataIndex: 'CLDT',
    //   key: 'CLDT',
    //   render: (date) => format(date, 'yyyy-MM-dd'),
    //   width: 120,
    //   sorter: true,
    //   dispaly: true,
    //   filter: true,
    //   dataType: 'date',
    // },
  ];
  if (props.isUpdate) {
    searchColumns.push({
      title: '原客户经理',
      dataIndex: 'Bgqdivi',
      key: 'Bgqdivi',
      render: (divis) => renderDivi(divis),
      width: 180,
      dispaly: true,
      ellipsis: true,
    });
  }
  const importName = props.isUpdate ? 'IndiAccoWorkflowUpdate' : 'IndiAccoWorkflowNew';
  const taskDaoName = props.isUpdate ? 'IndiAccoWorkflowUpdate' : 'IndiAccoWorkflowNew';
  const searchDaoName = props.isUpdate ? 'IndiAccoFlowChUpdate' : 'IndiAccoFlowChNew';
  const importTemplateName = props.isUpdate ? '储蓄关联变更申请' : '储蓄新户关联申请';
  const title =
    (props.isUpdate ? '储蓄关联变更' : '储蓄新户关联') +
    (props.showType === 'apply' ? '申请' : '审批');
  const searchControls: API.Control[] = [
    {
      name: 'CUNM',
      type: 'text',
      label: '客户名称',
      grid: 6 / 24,
      width: 100,
      layout: { labelSpan: 8, wrapperSpan: 16 },
      placeholder: '请输入完整的客户名称...',
      rules: [{ required: true, message: '客户名称不能为空' }],
    },
    {
      name: 'IDNO',
      type: 'text',
      label: '证件号码',
      grid: 10 / 24,
      width: 220,
      layout: { labelSpan: 8, wrapperSpan: 16 },
      placeholder: '请输入完整的证件号码...',
      rules: [{ required: true, message: '证件号码不能为空' }],
    },
    // {
    //   name: 'CDNO',
    //   type: 'text',
    //   label: '卡号',
    //   grid: 10 / 24,
    //   width: 200,
    //   layout: { labelSpan: 8, wrapperSpan: 16 },
    //   placeholder: '16位卡号,没有请输入0...',
    //   rules: [{ required: true, message: '卡号不能为空' }],
    // },
  ];
  let isFirstEmpl = true;
  if (props.isUpdate && user?.no == '008713') {
    isFirstEmpl = false;
  }
  return (
    <WorkflowDivi
      taskDaoName={taskDaoName}
      taskColumns={taskColumns}
      searchDaoName={searchDaoName}
      searchColumns={searchColumns}
      importName={importName}
      importTemplateName={importTemplateName}
      importControls={importControls}
      titleColNames={['CUNM']}
      searchControls={searchControls}
      searchKeyColName="ACID"
      maxEmplCount={3}
      title={title}
      // subhead="*为必输项,没有卡号请输0"
      showType={props.showType}
      isUpdate={props.isUpdate}
      userIsFirstEmpl={isFirstEmpl}
      isClientDivi={true}
      canSetDiviDate={false}
    />
  );
};
